
//
//  NSString+ZTTime.m
//  ZtEmail
//
//  Created by Zhengtong on 15/11/13.
//  Copyright © 2015年 Zhengtong. All rights reserved.
//

#import "NSString+ZTTime.h"

@implementation NSString (ZTTime)

+(int)getMonth:(NSDate*)date
{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *time = [formatter stringFromDate:date];
   return  [[[time componentsSeparatedByString:@"-"] objectAtIndex:1] intValue];
}
+(int)getYear:(NSDate*)date
{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *time = [formatter stringFromDate:date];
    return  [[[time componentsSeparatedByString:@"-"] objectAtIndex:0] intValue];
}
+(int)getDay:(NSDate*)date
{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *time = [formatter stringFromDate:date];
    return  [[[time componentsSeparatedByString:@"-"] objectAtIndex:2] intValue];
}
+ (NSString *)timeInfoWithDateString:(NSString *)dateString {
    
   dateString =  [[dateString componentsSeparatedByString:@"."] objectAtIndex:0];
    
    // 把日期字符串格式化为日期对象
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date = [formatter dateFromString:dateString ];

    NSTimeInterval timeInterval = -[date timeIntervalSinceNow];
    
    int temp = 0;
    NSString *result;
    if (timeInterval < 60) {
        result = [NSString stringWithFormat:@"刚刚"];
    }
    else if((temp = timeInterval/60) <60){
        result = [NSString stringWithFormat:@"%d分钟前",temp];
    }
    
    else if((temp = temp/60) <24){
        result = [NSString stringWithFormat:@"%d小时前",temp];
    }
    
    else if((temp = temp/24) <30){
        result = [NSString stringWithFormat:@"%d天前",temp];
    }
    
    else if((temp = temp/30) <12){
        result = [NSString stringWithFormat:@"%d月前",temp];
    }
    else{
        temp = temp/12;
        result = [NSString stringWithFormat:@"%d年前",temp];
    }
    return result;
//    
//    int month = [self getMonth:curDate] - [self getMonth:date];
//    int year  = [self getYear:curDate]  - [self getYear:date];
//    int day   = [self getDay:curDate]   - [self getDay:date];
//    
//    int retTime = 1;
//    // 小于一小时
//    if (time < 3600) {
//        retTime = time / 60;
//        retTime = retTime < 1? 0 : retTime;
//        if (retTime == 0) {
//            return @"刚刚";
//        }else{
//            return [NSString stringWithFormat:@"%d分钟前", retTime];
//        }
//       
//    }
//    // 小于一天，也就是今天
//    else if (time < 3600 * 24) {
//        retTime = time / 3600;
//        retTime = retTime <= 0.0 ? 1.0 : retTime;
//        [formatter setDateFormat:@"HH:mm"];
//        return [formatter stringFromDate:date];
//       // return [NSString stringWithFormat:@"%.0f小时前", retTime];
//    }
//    // 昨天
//    else if (time < 3600 * 24 * 2) {
//        [formatter setDateFormat:@"HH:mm"];
//        return [NSString stringWithFormat:@"昨天:%@",[formatter stringFromDate:date]];
//    }
//    // 第一个条件是同年，且相隔时间在一个月内
//    // 第二个条件是隔年，对于隔年，只能是去年12月与今年1月这种情况
//    else if ((abs(year) == 0 && abs(month) <= 1)
//             || (abs(year) == 1 && [self getMonth:curDate] == 1 && [self getMonth:date] == 12)) {
//        int retDay = 0;
//        // 同年
//        if (year == 0) {
//            // 同月
//            if (month == 0) {
//                retDay = day;
//            }
//            if(retDay > 2)
//            {
//                [formatter setDateFormat:@"MM月dd日"];
//                return [formatter stringFromDate:date];
//            }
// 
//        }
//        
////        if (retDay <= 0) {
////            // 这里按月最大值来计算
////            // 获取发布日期中，该月总共有多少天
////            int totalDays = [NSDate daysInMonth:(int)[self getMonth:date] year:(int)[self getYear:date]];
////            // 当前天数 + （发布日期月中的总天数-发布日期月中发布日，即等于距离今天的天数）
////            retDay = (int)[curDate getDay] + (totalDays - (int)[date getDay]);
////            
////            if (retDay >= totalDays) {
////                return [NSString stringWithFormat:@"%d个月前", (abs)(MAX(retDay / 31, 1))];
////            }
////        }
////        
////        return [NSString stringWithFormat:@"%d天前", (abs)(retDay)];
//    } else  {
//        if (abs(year) <= 1) {
//            if (year == 0) { // 同年
//                [formatter setDateFormat:@"MM月dd日"];
//                return [formatter stringFromDate:date];
//            }
//            
//            // 相差一年
//            int month = [self getMonth:curDate];
//            int preMonth = [self getMonth:date];
//
//            
//            // 隔年，但同月，就作为满一年来计算
//            if (month == 12 && preMonth == 12) {
//                return @"1年前";
//            }  
//            
//            // 也不看，但非同月  
//            return [NSString stringWithFormat:@"%d个月前", (abs)(12 - preMonth + month)];  
//        }  
//        
//        return [NSString stringWithFormat:@"%d年前", abs(year)];  
//    }
//    [formatter setDateFormat:@"HH:mm"];
//    return [formatter stringFromDate:date];
}

@end
